package com.example.springboot.common;

import lombok.*;
import org.springframework.scheduling.support.SimpleTriggerContext;

/*
    功能：设置接口统一返回的包装类型
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Result {
    public static final String CODE_SUCCESS="200";
    public static final String CODE_AUTH_ERROR="401";
    public static final String CODE_SYS_ERROR="500";

    /***
     * 请求的返回编码 200 401 500 404
     * 编码表示请求是成功还是失败
     * 或者说可以看出失败的类型是什么
     * 401 没有权限
     * 404 没有资源
     * 500 系统错误；虽然是系统错误，但是不知道具体的类型错误是什么，所以需要msg
     */
    private String code;
    /***
     * 表示错误的详细信息
     */
    private String msg;
    /***
     * 返回的数据类型
     * 返回user Object就是user类型
     * 返回map Object就是map类型
     */
    private Object data;

    public  static Result success(){
        return Result.builder().code(CODE_SUCCESS).msg("请求成功").build();
    }
    public static Result success(Object data){
        return new Result(CODE_SUCCESS,"请求成功",data);
    }
    public static Result error(String msg){
        return new Result(CODE_SYS_ERROR,msg,null);
    }
    public static Result error(String code,String msg){
        return new Result(code,msg,null);
    }
    public static Result error(){
        return new Result(CODE_SYS_ERROR,"系统错误",null);
    }

}
